Mobile devices, for example, smart phones, mobile or portable phones, tablets, and personal digital assistants, may include mobile applications that are executed on the mobile devices. These applications may be web-based applications written, for example, in HyperText Markup Language (HTML) or JAVA scripts. Pages of the application may be displayed using a Web browser. For example, pages of the application may be displayed with an Internet Explorer based browser or Chrome based browser operating on a mobile device, whether or not the mobile device is connected to the Internet or a network. The source code for the application may either be stored on the mobile device or on a remote server. In order to execute the application, the mobile device is configured to directly access the application source code that is stored either on the mobile device or on the remote server.
When the application source code is stored on the remote server, however, the mobile device may be unable retrieve the application source code when there is no connection with the remote server. For instance, if the mobile device is in a partially connected environment (for example, an environment where wireless connectivity is inconsistent), when the mobile device loses its connection with the remote server the mobile device will be unable to retrieve the application source code from the remote server. During these periods when the connection with the remote server is broken, the mobile device will be unable to execute the application. In these circumstances, it may be preferable to have the application source code stored on the mobile device, so that the application source code is always available.
When the application source code is stored on the mobile device, the data or other information associated with the application may be synchronized with network components during periods when the mobile device has network connectivity. However, when the application source code is stored on the mobile device, the application source code is typically saved as plain text that is not encrypted because a typical Web browser has no way of accessing encrypted source code. Anyone with access to the mobile device may therefore be able to retrieve the unencrypted application source code from the mobile device and execute the retrieved application source code on another computing device without permission.
A current option for encrypting the source code associated with off-line mobile web applications is to store the source code on an encrypted drive or an encrypted file system in the mobile device. Encrypted drives are designed to protect against data access if the mobile device or its storage card is lost. Encrypted drives do not prevent retrieval of plain text versions of the source files if the person copying the source code without permission has authorized access to the mobile device. Furthermore, not all mobile platforms support encrypted drives or file systems. Another option for protecting unencrypted source code is to obfuscate the source file. With this solution, it is still possible to easily extract and reproduce the application obtained from the plain text obfuscated files.
Accordingly, there is a need for an improved apparatus and method for deploying an encrypted mobile off-line web application.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.